package com.naiterui.ehp.bs.emr.vo.patient;

import java.io.Serializable;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.ToStringBuilder;

import com.fasterxml.jackson.annotation.JsonIgnore;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 饮酒状况
 *

 * @since 2.16
 */
@SuppressWarnings("unused")
@ApiModel(value = "MDrinkVO", description = "饮酒状况VO")
public class MDrinkVO implements Serializable {
    /**
     * 未戒酒
     */
    public static final int DRINK_STATUS_YES = 0;
    /**
     * 已戒酒
     */
    public static final int DRINK_STATUS_NO = 1;
    /**
     * 饮酒频率0：从不； 1：偶尔；2；经常；3：每天
     */
    public static final int DRINK_FREQUENCY_NO = 0;
    /**
     * 饮酒频率0：从不； 1：偶尔；2；经常；3：每天
     */
    public static final int DRINK_STATUS_SOMETIME = 1;
    /**
     * 饮酒频率0：从不； 1：偶尔；2；经常；3：每天
     */
    public static final int DRINK_STATUS_OFTEN = 2;
    /**
     * 饮酒频率0：从不； 1：偶尔；2；经常；3：每天
     */
    public static final int DRINK_STATUS_EVERYDAY = 3;
    private static final long serialVersionUID = -3868039357385940624L;
    /**
     * 饮酒频率0：从不； 1：偶尔；2；经常；3：每天
     */
    @ApiModelProperty(value = "饮酒频率0：从不； 1：偶尔；2；经常；3：每天")
    private Integer frequency;
    /**
     * <日饮酒量>
     */
    @ApiModelProperty(value = "日饮酒量")
    private String perdayNum;
    /**
     * <开始饮酒年龄>
     */
    @ApiModelProperty(value = "开始饮酒年龄")
    private String drinkStart;
    /**
     * <戒酒年龄>
     */
    @ApiModelProperty(value = "戒酒年龄")
    private String stopAge;
    /**
     * <饮酒状态：0未戒酒；1已戒酒>
     */
    @ApiModelProperty(value = "饮酒状态：0未戒酒；1已戒酒")
    private String drinkStatus;
    /**
     * <酒类>
     */
    @ApiModelProperty(value = "酒类")
    private MSelectOrOthersVO wines;

    public String getDrinkStatus() {
        return this.drinkStatus;
    }

    public void setDrinkStatus(String drinkStatus) {
        this.drinkStatus = drinkStatus;
    }

    public Integer getFrequency() {
        return this.frequency;
    }

    public void setFrequency(Integer frequency) {
        this.frequency = frequency;
    }

    public String getPerdayNum() {
        return this.perdayNum;
    }

    public void setPerdayNum(String perdayNum) {
        this.perdayNum = perdayNum;
    }

    public String getDrinkStart() {
        return this.drinkStart;
    }

    public void setDrinkStart(String drinkStart) {
        this.drinkStart = drinkStart;
    }

    public String getStopAge() {
        return this.stopAge;
    }

    public void setStopAge(String stopAge) {
        this.stopAge = stopAge;
    }

    public MSelectOrOthersVO getWines() {
        return this.wines;
    }

    public void setWines(MSelectOrOthersVO wines) {
        this.wines = wines;
    }

    @JsonIgnore
    public boolean isEmpty() {
        return this.frequency == null && StringUtils.isEmpty(this.perdayNum) && StringUtils.isEmpty(this.drinkStart)
                && StringUtils.isEmpty(this.stopAge) && StringUtils.isEmpty(this.drinkStatus) && (this.wines == null || this.wines.isEmpty());
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}